clc; clear; close all;

%% 参数设置
a_min = 0.65;
a_max = 0.90;
Na    = 300;         % 参数步数
a_vals= linspace(a_min, a_max, Na);
f = @QOIM;

N_iter   = 1000;           % 总迭代步数
Transient= 200;            % 瞬态步数
KeepNum  = 500;            % 分岔图记录步数

% 初始条件 (x0, phi0) = (0.5, 0.5)
x0   = 0.5;
phi0 = 0.5;

%% 结果存储
LE1_array = zeros(1, Na);   % 存储最大李指数
LE2_array = zeros(1, Na);   % 存储第二个李指数

Bif_x = [];   % 用于存储分岔图的 x 值
Bif_a = [];   % 对应的参数 a

%% 主循环: 扫描参数
for ia = 1:Na
    a = a_vals(ia);
    
    % 调用封装好的 LE 函数
    [LE1, LE2, xStore] = LE(f, a, x0, phi0, N_iter, Transient, KeepNum);
    
    % 存储李雅普诺夫指数
    LE1_array(ia) = LE1;
    LE2_array(ia) = LE2;
    
    % 记录分岔图数据
    Bif_x = [Bif_x, xStore];               
    Bif_a = [Bif_a, a * ones(1, KeepNum)];
end

%% 绘图
% 子图1: 李指数
subplot(2,1,1); hold on; box on; grid on;
plot(a_vals, LE1_array, 'r', 'LineWidth',1, 'DisplayName','LE1');
plot(a_vals, LE2_array, 'b', 'LineWidth',1, 'DisplayName','LE2');
yline(0,'k--');
xlabel('a'); ylabel('Lyapunov Exponents');
legend('Location','best');
title('Lyapunov Exponents vs. a');

% 子图2: 分岔图
subplot(2,1,2); hold on; box on; grid on;
plot(Bif_a, Bif_x, '.', 'MarkerSize',1, 'Color',[0.2,0.8,0.8]);
xlabel('a'); ylabel('x_{1}(max)');
title(' QO-IM 模型分岔图');

